为了账号安全,请及时绑定邮箱和手机立即绑定

java map()..........

标签:
Java

Map遍历 Map<K,V> 一次存储一对
HashMap 存储的数据是没有顺序的,键或值可以为nullHashtable和HashMap的区别

  • Hashtable里面的方法几乎都是同步的,线程安全,HashMap则没有,但效率高。(同ArrAyList和Vector)
  • Hashtable不允许存放null值(键和值都不可以),而HashMap可以
    使用了二叉权的数据结构,key是有序,保存其唯一性用到了hashCode()、equals()以及比较器(唯一性判断,键排序同TreeSet *

相同点

  • 存放元素无序

key必须唯一
get(Object key); //获取给定key对应的值。
put(Object key,Object value); //该方法会将原先Key所对应的键值对覆盖掉,即可以用该方法修改Map中的值。
containsKey(Object Key); //是否包含某个元素。通过配合get和put方法一起使用,来实现匹配并修改Map中的元素。
HashMap TreeMap
map遍历
迭代 Map 中的元素不存在直接了当的方法。如果要查询某个 Map 以了解其哪些元素满足特定查询,或如果要迭代其所有元素(无论原因如何),则您首先需要获取该 Map 的“视图”。有三种可能的视图(参见表 3 )
所有键值对 — 参见 entrySet()
所有键 — 参见 keySet()
有值 — 参见 values()
方法一 在for-each循环中使用entries来遍历
这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。

1. Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
2.   
3. for (Map.Entry<Integer, Integer> entry : map.entrySet()) {  
4.   
5.     System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
6.   
7. }  
8. 注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。

方法二 在for-each循环中遍历keys或values。
如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。

1. Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
2.   
3. //遍历map中的键  
4.   
5. for (Integer key : map.keySet()) {  
6.   
7.     System.out.println("Key = " + key);  
8.   
9. }  
10.   
11. //遍历map中的值  
12.   
13. for (Integer value : map.values()) {  
14.   
15.     System.out.println("Value = " + value);  
16.   
17. }  
18. 该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
19. 方法三使用Iterator遍历
20. 使用泛型:
21. Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
22.   
23. Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();  
24.   
25. while (entries.hasNext()) {  
26.   
27.     Map.Entry<Integer, Integer> entry = entries.next();  
28.   
29.     System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
30.   
31. } 
32. Map map = new HashMap();  
33.   
34. Iterator entries = map.entrySet().iterator();  
35.   
36. while (entries.hasNext()) {  
37.   
38.     Map.Entry entry = (Map.Entry) entries.next();  
39.   
40.     Integer key = (Integer)entry.getKey();  
41.   
42.     Integer value = (Integer)entry.getValue();  
43.   
44.     System.out.println("Key = " + key + ", Value = " + value);  
45.   
46. }
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消